var path = require('path');
var ExtractTextPlugin = require('extract-text-webpack-plugin');
var webpack = require('webpack');
var AssetsPlugin = require('assets-webpack-plugin');

module.exports = {
    entry: {
        app: './js/main.js',
    },
    module: {
        rules: [
            {
                test: /\.js$/,
                exclude: /node_modules/,
                use: {
                    loader: 'babel-loader',
                    options: {
                        presets: ['env'],
                    },
                },
            },
            {
                test: /\.css$/,
                use: ExtractTextPlugin.extract({
                    fallback: 'style-loader',
                    use: 'css-loader?importLoaders=1!postcss-loader',
                }),
            },
        ],
    },

    output: {
        path: path.join(__dirname, './../static/dist'),
        filename: 'js/[name].[chunkhash].js',
    },

    resolve: {
        modules: [path.resolve(__dirname, 'src'), 'node_modules'],
    },

    plugins: [
        new AssetsPlugin({
            filename: 'webpack_assets.json',
            path: path.join(__dirname, '../data'),
            prettyPrint: true,
        }),
        new ExtractTextPlugin({
            filename: getPath => {
                return getPath('css/[name].[contenthash].css');
            },
            allChunks: true,
        }),
    ],
    watchOptions: {
        watch: true,
    },
};
